package com.tao.controller;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.tao.pojo.Pic;
import com.tao.service.PicService;
import com.tao.service.QiniuServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.*;
import java.util.List;

@RestController
public class PicController {
    @Autowired
    PicService picService;

    @Autowired
    private QiniuServiceImpl qiniuServiceImpl;


//    @RequestMapping("/delPic/{id}")
//    public  String delPic(@PathVariable int id){
//        JSONObject o =new JSONObject();
//        Pic pic = picService.selectByPrimaryKey(id);
//
//
//        //删除文件
//        String path=System.getProperty("user.dir")+"/src/main/resources/static/"+"images/gallery/"+pic.getPicname();
//        File file = new File(path);
//        if (!file.exists()) { // 要删除的文件不存在
//            System.out.println("需要删除的文件不存在");
//
//        } else { // 要删除的文件存在
//            file.delete();
//
//        }
//
//        o.put("msg","success");
//
//
//
//        picService.deleteByPrimaryKey(id);
//
//        return JSON.toJSONString(o);
//    }



//    @PostMapping("/addPic")
//    public String addPic(MultipartFile file)  {
//
//        JSONObject o =new JSONObject();
//
//            //获取上传文件的名称和后缀名
//            String originalFilename = file.getOriginalFilename();
//            System.out.println("originalFilename："+originalFilename);
//        originalFilename=originalFilename.split("\\.")[1];
//            //重新生成文件名
//            String fileName = UUID.randomUUID().toString().replaceAll("-","") + "."+originalFilename;
//            //设置存储目录
//        String url1 = System.getProperty("user.dir");
//        System.out.println("url1:"+url1);
////            增加路径  项目路径+静态资源路径 +相对路径
//            String dirPath = url1+"/src/main/resources/static/"+"images/gallery/";
//            //如果文件不存在则创建
//
//            File file1 = new File(dirPath);
//            //如果文件不存在则创建
//            if (!file1.exists()) {
//                file1.mkdir();
//            }
//            //文件上传
//            try {
//                File file2= new File(dirPath + fileName);
//                file.transferTo(file2);
//                o.put("uploadStatus", "success");
//
//            } catch (Exception e) {
//                e.printStackTrace();
//                System.out.println("文件路径出错？");
//                o.put("uploadStatus", "error");
//            }
//
////            数据库操作
//        Pic pic=new Pic();
//            pic.setPicurl("images/gallery/");
//        System.out.println("filename"+fileName);
//            pic.setPicname(fileName);
//            pic.setType("wall");
//        picService.insertPic(pic);
//
//        return JSON.toJSONString(o);
//
//    }

//    打成jar包就这种报错，路径不对
//  D:\gitCode\springboot-shiro\target\src\main\resources\static\images\gallery\fbbaf7d2db3e43baa41
//814b160bd83f5.jpg

//七牛云 查询（就是多了个查询 网上的 url）

    @RequestMapping("/selectAllPic")
    public String selectAllPic(){

        List<Pic> pics = picService.selectAll();
        System.out.println("通过七牛云调用以下图片： ---------------------------------");
        for (Pic pic : pics) {
//            设置当前七牛云的访问路径
            pic.setPicurl(qiniuServiceImpl.getQnyUrl(pic.getPicname()));
        }
        System.out.println("图片end：---------------------------------");
        return JSON.toJSONString(pics);
    }

    //七牛云删除
    @RequestMapping("/delPic/{id}")
    public  String delPic(@PathVariable int id){
        JSONObject o =new JSONObject();
        Pic pic = picService.selectByPrimaryKey(id);


        //删除文件
        String path="images/gallery/"+pic.getPicname();
        String s = qiniuServiceImpl.delImage(path);

        o.put("msg",s);
        picService.deleteByPrimaryKey(id);

        return JSON.toJSONString(o);
    }


    //七牛云 添加
    @PostMapping("/addPic")
    public String addPic(MultipartFile file)  {
        JSONObject o =new JSONObject();
        String fileName="";
        try {
            fileName=qiniuServiceImpl.saveImage(file);
            o.put("msg","上传成功："+file.getOriginalFilename());

        } catch (IOException e) {
            System.out.println("上传失败");
            o.put("msg","上传失败");
            return JSON.toJSONString(o);
        }

        Pic pic=new Pic();
            pic.setPicurl("images/gallery/");
//        System.out.println("filename:"+fileName);
            pic.setPicname(fileName);
            pic.setType("wall");
        picService.insertPic(pic);
        return JSON.toJSONString(o);
    }



}
